本大纲对应教材版本:全国高等教育自学考试指导委员会组编,王立福主编,刘学洋、胡文蕙编,机械工业出版社,2011年版。
教材购买网址:自考教材商城
软件工程
(课程代码:02333)
一、课程性质与课程目标“软件工程”是高等教育自学考试计算机及应用专业(独立本科段)考试计划中的一门专业课。“软件工程”是研究软件开发的一门课程。其主要内容包括:软件开发所需要的过程活动和任务,以及这些过程、活动和任务的组织、实施和管理。在学习本课程之前,要求考生已学习过某一程序设计语言,最好还学习过计算机操作系统、数据库系统和数据结构等课程。针对独立本科段的需求,本课程重点讲述软件工程开发技术,包括软件需求方法、软件设计方法以及软件测试方法。通过本课程的学习,可以具备从事软件开发的基本能力,并为软件开发的过程管理奠定一定的基础。二、课程内容与考核要求本课程自学和考试的总目标是:在理解软件开发本质的基础上,基本掌握软件开发所需要的过程、活动和任务以及相关的活动组织框架;掌握结构化开发方法、面向对象开发方法,并能针对小型简单系统,应用这些方法给出问题定义和软件设计;掌握软件测试技术;了解一个软件项目的软件过程管理;了解软件开发组织过程改进途径。下面,给出每章考核知识点和考核要求。
第1章 绪论1.总的要求要求考生了解软件工程提出的历史背景,了解软件开发的本质,以及软件、软件工程、模型等基本概念。2. 知识点和考核要求(1)识记1)软件与软件工程概念。2)模型概念。(2)领会1)软件工程概念的提出背景与发展历程。2)求解问题的基本途径。3)在软件开发中的模型分类。
第2章 软件需求与软件需求规约1.总的要求要求考生在了解软件需求和需求规约概念的基础上,掌握需求和需求规约的基本特性;掌握需求分类;掌握需求发现基本技术;了解表达规约需求的基本手段;了解需求规约在软件开发中的作用。
2.知识点和考核要求(1)识记1)需求定义及其基本特性。2)需求规约定义及其基本特性。(2)领会1)功能需求和非功能需求,以及它们之间的基本关系。2)需求发现技术。3)规约需求的三种语言。4)需求在软件开发中的作用。(3)应用针对一个小型简单的系统,运用合适的需求发现技术,按一定要求的规格说明格式,以限定的自然语言给出该系统的需求规约。
第3章 结构化方法1.总的要求要求考生掌握结构化分析方法,并能运用该方法给出小型简单系统的功能模型;掌握结构化设计方法,能基于给定的小型简单系统功能模型,给出系统的总体设计,并能运用详细设计工具给出若干模块的详细设计。2.知识点和考核要求(1)识记1)表达问题域信息的基本术语及其表示。2)表达功能模型的工具-DFD图。3)数据结构符和判定表、判定树。4)变换型数据流图和事务型数据流图。5)模块以及模块内聚和耦合。6)详细设计工具:框图、PAD图、N-S图和伪码。(2)领会1)结构化方法源于的基本思想。2)结构化分析方法中每一术语所基于的原理以及它们在建模中的作用。3)构建系统功能模型的步骤。4)变换设计和事务设计。5)“高内聚低耦合”原则以及经验性准则。6)详细设计工具的优缺点以及相互转换。7)结构化方法存在的问题。(3)应用1)针对不复杂的系统需求(问题)陈述,创建该系统的功能模型,包括系统的DFD图、数据字典和加工小说明。2)在创建系统功能模型的基础上,给出该系统的总体设计,并针对有关模块运用PAD图或N-S图或伪码,给出这些模块的详细设计。
第四章
1.总的要求要求考生掌握在创建系统/产品模型(包括概念模型和软件模型)中用于表达信息的基本术语以及用于表达模型的用况图、类图、顺序图和状态图。2.知识点和考核要求(1)识记1)类、接口、用况、协作等概念。2)关联、泛化、实现、依赖等概念。3)类图的构成。4)用况图的构成。5)顺序图的构成。6)状态以及状态图的构成。(2)领会1)面向对象方法源于的基本思想。2)UML的每一术语所基于的原理以及它们在建模中的作用。3)类的描述及其语义的表达。4)类在建模中的作用。5)表达关联语义的基本手段。6)状态的种类及其描述。7)顺序图中的操作子。8)正交子状态机与非正交子状态机。
第5章 面向对象方法-RUP1.总的要求要求考生掌握在创建系统/产品需求获取模型、需求分析模型和设计模型中的基本活动和任务,并能运用RUP建立小型简单系统的用况模型、需求分析模型,并了解RUP设计模型的基本结构,以及在设计中如何处理共性的非功能需求。2.知识点和考核要求(1)识记1)需求获取层、需求分析层、软件设计层上的术语。2)用况之间的基本关系。3)系统/产品用况模型的构成。4)系统/产品需求分析模型构成。5)系统/产品设计模型和部署模型的构成。6)创建系统/产品需求获取模型的四个步骤。(2)领会1)领域模型、业务模型以及在系统开发中创建它们的目的。2)创建系统/产品用况模型的活动和任务。
3)参与者的标识与描述,以及标识中的有关准则。4)用况标识以及标识中的有关准则,用况的事件流描述技术以及描述的基本内容。5)创建系统/产品需求分析模型的活动和任务。6)分析包的标识以及分析包的二层结构。7)边界类、实体类、控制类的标识,以及它们的作用和关系。8)用况细化[分析]以及用况和协作之间的基本关系。9)创建系统/产品设计模型的活动和任务。10)设计模型的四层结构。11)需求获取模型与需求分析模型的比较。12)需求分析模型与设计模型的比较。3.应用1)针对一个小型简单系统,创建系统/产品用况模型、需求分析模型。2)针对一个特定的用况,运用顺序图描述它的实现。3)针对一个特定类,运用状态图描述其生存周期。4)针对一个小型简单系统,运用状态图描述其生存周期。5)针对一种共性需求(例如事物管理等),运用主动类给出它的设计。
第6章 软件测试1.总的要求要求考生掌握三种软件测试技术:基于程序路径的白盒测试技术、基于需求规约的事务流测试技术和等价类划分技术(后两种测试技术属于黑盒测试技术);并能针对小型简单系统,运用这些技术开展相应的软件测试工作,包括用例设计、测试执行以及结果比较。2.知识点和考核要求(1)识记1)软件测试。2)测试过程模型。(2)领会1)路径测试中的被测试对象模型及其创建。2)测试覆盖及其它们之间的基本关系。3)事务流与控制流之间的区别以及为测试带来的影响。4)事务流测试步骤。5)运用等价类划分技术进行测试的步骤。6)软件测试的基本步骤。(3)应用1)针对一个小型简单系统或一个特定的用况,创建系统的事务流测试模型。2)针对一个特定的软件模块,运用白盒测试技术创建该模块的被测试对象模型,并给出相应的测试用例。3)针对一个简单的程序,运用等价类划分技术创建其测试模型并给出相应的测试用例。
第7章 软件生存周期过程与管理1.总的要求要求考生了解围绕软件开发所需要的过程、活动和任务,掌握过程之间的基本关系,基本掌握一个软件项目的过程规划和监控。2.知识点和考核要求(1)识记1)过程分类。2)过程之间的关系。(2)领会1)软件实现过程、活动和任务;软件需求分析过程、活动和任务;软件体系结构设计过程、活动和任务。2)软件验证过程、活动和任务;软件确认过程、活动和任务。3)软件需求分析过程、软件体系结构设计过程与RUP需求获取、需求分析和设计之间的关系。4)组织上使能过程的作用。5)瀑布模型、增量模型、演化模型、螺旋模型。6)演化模型与RUP特点“增量迭代开发”。7)创建一个软件项目生存周期过程的步骤。8)监控一个软件项目生存周期过程的要点。9)剪裁过程及其应用。(3)应用针对一个小型简单系统的开发,建立该项目的生存周期过程。
第8章 集成化能力成熟度模型(CMMI)1.总的要求要求考生掌握过程改善所基于的基本思想,针对开发的CMMI有关“最佳实践”的组织以及两种过程改善的路径-能力等级和成熟度等级。2. 知识点和考核要求(1)识记1)过程改善。2)过程域、专用目标和共用目标。3)能力等级。4)成熟度等级。5)过程制度化。(2)领会1)CMMI有关最佳实践的组织。2)过程域及其分类。3)能力等级的组成及其各等级的特征。
4)成熟度等级的组成及其各级的特征。5)能力等级与成熟度等级之间的基本关系。6)达到共用目标2、共用目标3、共用目标4和共用目标5所要实施的共用实践。7)项目规划过程达到成熟度2级所要满足的专用目标、共用目标以及所要实施的实践。8)需求开发过程域达到成熟度3级所要满足的专用目标、共用目标以及所要实施的实践。
三、有关说明及实施要求(一)关于考核要求中三个能力层次的说明(1)识记“识记”意指考生能够标识并记忆本大纲所规定的软件工程知识点,主要包括软件工程中各种工具、方法、过程的名称、含义和用途,如结构化方法、面向对象的方法、黑盒测试、白盒测试等;并能根据考题的不同要求,做出正确的选择、判断和回答。(2)领会“领会”意指考生能够领悟和理解本大纲知识点的内涵和外延,涉及的概念以及概念之间的关系,并且能概括概念之间关系发生的条件和/或过程。具体在本课程中,考生应掌握和熟悉软件开发过程中方法、工具和技术的基本思想、关系、作用、目标、实施步骤和评判标准,对软件开发工作有一个总体的感受和理解。(3)应用“应用”意指考生能够运用本大纲规定的知识点,分析并解决相关的应用问题。具体到本课程中,考试能够根据实际工作的需要,将软件工程方法(如结构化方法和面向对象方法)运用的软件开发周期的各个阶段(如需求分析、系统设计、系统测试等),从而能进行问题的定义和软件功能的实现。
(二)关于实施要求(1)教材《软件工程》,全国高等教育自学考试指导委员会组编,王立福主编,刘学洋、胡文蕙编,机械工业出版社,2011年版。(2)自学指导1)软件工程是一门技术性很强的课程,不但涉及软件工程开发技术,而且还涉及工程管理技术。因此希望考生尽可能参加教学点的助学辅导,尤其对那些几乎没有参与过软件项目的考生。2)考生应在学习过某一计算机语言及程序设计的基础上学习本课程,最好还学习过计算机操作系统、数据库系统等课程。3)考生应认真学习并理解本教材中的概念及概念之间的关系。必须认真学习并理解每章的小结。4)考生应按本大纲的三个能力层次要求,学习其中的每一个知识点。5)考生应注重工程方法和技术的应用,做好每章有关应用方面的习题,如有可能,最好结合工作实践,有针对性地进行一些必要技能训练。(3)社会助学1)助学辅导老师应按大纲讲解规定的内容把握重点,并尽可能通过项目实例讲解。2)助学老师在讲解中应关注本教材内容之间的逻辑关系;关注概念、概念之间的关以及这些关系发生的条件和过程(技术)。3)助学老师应特别关注大纲中有关应用部分的训练。4)助学课时。本课程3学分,相当于全日制高等学校54学时,可参阅下表来分配辅学时:
(4)关于命题和考试1)考试命题:考试题型主要包括单项选择题、填空题、简答题和综合应用题。2)考试方式:闭卷、笔试。考试时间为150分钟。评卷满分100分,60分为及格。
附录题型举例一、单项选择题(在每个小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。选错、多选或未选均无分。)例1:在《软件生存周期过程标准》(ISO/IEC 12207)中,软件支持过程组包含的过程有【 】A.获取过程、提供过程、软件文档管理过程、软件运行过程等B.软件文档管理过程、软件需求分析过程、软件配置管理过程、软件评估过程等C.软件配置管理过程、软件验证过程、软件确认过程和软件文档管理过程等D.管理过程、软件集成过程、基础设施过程、培训过程和过程改进过程二、填空题(请在每小题的空格中填上正确答案。错填、不填均无分。)例1:表达用况(use case)之间关系的概念有包含、扩展和____。三、简答题例1:请写出白盒测试技术的测试策略,以及它们之间的关系。四、综合应用题例1:把下面的DFD图转换为初始的MSD图。
其中,竖虚线表示输入、变换、输出之间的界面。例2:问题陈述:在一简化的银行借贷系统中,借贷员:1)将客户提交的借款单(客户名,身份证号,项目(购房贷款,助学贷款,购物贷款),金额,借/还款日期,期限,月付金额)以及必备的申请贷款资料送交借贷部经理审批,或同意贷款或不同意贷款。当同意贷款后,借贷员建立该客户的借款帐,并给客户一张经审批的、具有账号的借款单;当不同意时,给客户一种拒绝贷款的通知。2)依据借款单处理还款业务。借贷部经理:1)每日统计借款金额、还款金额以及营业收入。2)每日对那些没有及时还款的客户发出催交还款单,并将该催交还款单发给借贷员,并由借贷员向客户发出催还贷款的通知。1.请用结构化分析方法,给出该系统的DFD(顶层、0层),以及数据字典。2.请用面向对象方法:(1)标识该系统的 actor 和 use case,并对每一use case给出简单描述。(2)采用顺序图表达借贷员和借贷部经理之间的交互。